import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vitejs.dev/config/
export default defineConfig({
  server: {
    port: 4567,
    open: true,
    // 这里配置前端代理
    proxy: {
      '/dev-api': {
        // 匹配所有一 /dev-api开头的请求路径
        target: 'http://127.0.0.1:9801', // 目标服务器地址
        changeOrigin: true, // 支持跨域
        rewrite: path => path.replace(/^\/dev-api/, '/gateway/app')
      },
      // ... 可以配置多个代理服务器
      '/prod-api': {
        // 匹配所有一 /prod-api开头的请求路径
        target: 'http://127.0.0.1:9901', // 目标服务器地址
        changeOrigin: true, // 支持跨域
        rewrite: path => path.replace(/^\/prod-api/, '/gateway/app')
      }
    }
  },
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  css: {
    preprocessorOptions: {
      scss: {
        javascriptEnabled: true, // 开启scss的js语法
        additionalData: '@use "@/styles/variables.scss" as *;', // 引入全局变量
        api: 'modern-compiler', // 使用现代编译器
        silenceDeprecations: ['legacy-js-api'] // 静默弃用警告
      }
    }
  },
  define: {
    // 是否在生产环境暴露 devtools（默认 false）
    __VUE_PROD_DEVTOOLS__: false,
    // 是否在生产模式下开启 hydration‐mismatch 详情（默认 false）
    __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false
  }
})
